package com.atguigu.aiproject.service;

import com.atguigu.aiproject.entity.ChatMessage;
import com.atguigu.aiproject.entity.ChatSession;
import com.atguigu.aiproject.vo.PageResult;
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;
import java.util.List;

@Service
public interface ChatService {
    // 发送消息
    void sendMessage(ChatMessage message);

    // 获取聊天记录 - 基于游标的分页（更适合聊天场景）
    PageResult<ChatMessage> getChatHistory(Integer userId, Integer targetUserId,
                                           LocalDateTime before, Integer limit);

    // 标记消息为已读
    void markMessagesAsRead(Integer userId, Integer targetUserId);

    // 更新用户在线状态
    void updateUserOnlineStatus(Integer userId, boolean isOnline);

    // 获取用户会话列表
    List<ChatSession> getUserSessions(Integer userId);

    Integer getTotalUnreadCount(Integer userId);

    void clearChatHistory(Integer userId, Integer targetUserId);
}
